package org.example.cloud.service.impl;

import jakarta.annotation.Resource;
import org.example.cloud.entities.Pay;
import org.example.cloud.mapper.PayMapper;
import org.example.cloud.service.PayService;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author 宋孟林
 * @description
 * @date: 2025/4/4 14:38
 */
@Service
public class PayServiceImpl implements PayService {
    //@Resource注解是比较推荐使用的注解，如果使用构造器比较推荐使用@Autowired
    @Resource
    private PayMapper payMapper;

    /**
     * 保存方法 insertSelective 方法插入一个实体之后，如果有属性的值为null则不会保存为null 而是会使用 数据库的默认值
     * 保存方法 insert 方法插入一个实体之后 属性值为null的，那么会直接保存值为null到数据库
     * @param pay save object
     * @return affect rows
     */
    @Override
    public int add(Pay pay) {
        return payMapper.insertSelective(pay);
    }

    /**
     * 通用mapper方法中 删除方法有 delete()删除某个对象 deleteByExample()根据可能存在的条件来删除
     * deleteByPrimaryKey()根据主键来删除
     * @param id 按照id 删除
     * @return affect rows
     */
    @Override
    public int delete(Integer id) {
        return payMapper.deleteByPrimaryKey(id);
    }

    @Override
    public int update(Pay pay) {
        return payMapper.updateByPrimaryKeySelective(pay);
    }

    @Override
    public Pay getById(Integer id) {
        return payMapper.selectByPrimaryKey(id);
    }

    /**
     * 查询所有
     * @return 所有的集合对象
     */
    @Override
    public List<Pay> getAll() {
        return payMapper.selectAll();
    }
}
